package com.smfx.yxt.service;

import java.util.List;

import com.smfx.yxt.model.NoticeRecord;
import com.smfx.yxt.page.Page;
import com.smfx.yxt.reqVo.NoticeQueryVO;
import com.smfx.yxt.reqVo.NoticeReqVO;
import com.smfx.yxt.view.NoticeRecordView;

public interface INoticeService {

	int insertSelective(NoticeRecord record);

    NoticeRecord selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(NoticeRecord record);
    /**
     * 创建通知
     * @param reqVO
     * @param record
     * @return
     */
    int createNotice(NoticeReqVO reqVO, NoticeRecord record);
    /**
     * 重发通知
     * @param reqVO
     * @param record
     * @return
     */
    int repeatNotice(NoticeReqVO reqVO, NoticeRecord record);
    
    int updatePrincipalSend(NoticeReqVO reqVO, NoticeRecord record);
    
    /**
     * 根据参数查询通知列表
     * @param reqVO
     * @return
     */
    List<NoticeRecordView> selectListByParam(NoticeQueryVO vo);
    
    NoticeRecordView selectByParam(NoticeQueryVO vo);
    
    /**
     * 分页查询通知列表
     * @param page
     * @return
     */
    List<NoticeRecordView> selectViewListByPage(Page<NoticeRecordView> page);
    /**
     * 分页查询通知列表
     * @param page
     * @return
     */
    List<NoticeRecord> selectListByPage(Page<NoticeRecord> page);
    /**
     * 接收人通知统计
     * @param vo
     * @return
     */
    List<NoticeRecordView> selectCountForSendee(NoticeQueryVO vo);
    
    NoticeRecordView selectViewByNoticeId(NoticeQueryVO vo);
    
    List<NoticeRecord> selectListForFileAroundByPage(Page<NoticeRecord> page);
    List<NoticeRecord> selectListForFileAroundByPage1(Page<NoticeRecord> page);
}
